 
\newpage
\section{ICCFPGA Development Board}

The development board includes a Pmod interface and also functions as a Rasperberry Pi HAT, making it easy to connect to a variety of peripheral devices.

\subsection{Overview}

You can use the development board as a HAT for Raspberry Pi 3 and Raspberry Pi 4 or you can run the board as a standalone device.

Both 5V inputs (USB and Raspberry Pi) are combined to a single 5V supply through two MOSFET-based ``ideal diodes''. This prevents shorting both power-inputs and avoids voltage drops and power loss on the diodes. Both power supplies can be applied without restrictions at the same time.

\begin{center}
\includegraphics[width=12cm]{img/dev.pdf}
\end{center}

\subsection{Technical Data}
\begin{itemize}
\item Raspberry Pi 3/4 compatible connector
\item USB with CP2103 USB-to-UART bridge
\item Three Pmod-compatible pin sockets (one with SPI, and 4 GPIO pins, one with SPI, I2C, and 2 GPIO pins, one with UART, and 4 GPIO pins)
\item JTAG via Raspberry GPIO or extra connectors (JTAG for FPGA and RISC-V seperate)
\item UART via Raspberry GPIO, USB, RISC-V JTAG connector or pin-socket
\item Power via Raspberry GPIO or USB
\end{itemize}

\subsection{Jumpers}
\label{jumpers}
The development board includes four jumper blocks for configuring the circuit board.

\begin{tabular}{m{2cm} m{15cm}}
\vspace{0.2cm}
\includegraphics{img/j9.pdf} & JTAG select jumper (J9). Selects JTAG from Raspberry GPIO or J2/J6 pin-header \\
\vspace{0.2cm}
\hspace{0.15cm}\includegraphics{img/j7j8.pdf} & UART jumper (J7, J8). Selects TXD and RXD from RISC-V JTAG, USB, Raspberry Pi GPIO or pin-header J5* \\
\vspace{0.2cm}
\hspace{-0.10cm}\includegraphics{img/j10.pdf} & I2C Pull-Up jumper (J10). Enables or disables 3.3k pullup resistor on I2C connected to J4.\\
\hline

\end{tabular}

*: TX is the driving output of the ICCFPGA module. Whereas all four RX jumpers can be set, only one TX jumper may be set to avoid many drivers using a single line. 

\subsection{Pinout}
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline 
Pin & Name & Function & Alternate Function \\
\hline 
1 & IO3 & GPIO3 & SS0 \\
\hline
2 & IO0 & GPIO0 & MOSI0 \\
\hline
3 & IO1 & GPIO1 & MISO0 \\
\hline
4 & IO2 & GPIO2 & SCK0 \\
\hline
7 & IO9 & GPIO9 &  \\
\hline
8 & IO10 & GPIO10 & \\
\hline
9 & IO11 & GPIO11 &  \\
\hline
10 & IO12 & GPIO12 & \\
\hline
6, 12 & +3.3V & & \\
\hline
5, 11 & GND & & \\
\hline

\end{tabular}
\\PMOD Connector J3
\end{center}

\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Pin & Name & Function & Alternate Function \\
\hline
1 & IO4 & GPIO4 & SS1 \\
\hline
2 & IO0 & GPIO0 & MOSI0 \\
\hline
3 & IO1 & GPIO1 & MISO0 \\
\hline
4 & IO2 & GPIO2 & SCK0 \\
\hline
7 & IO13 & GPIO13 &  \\
\hline
8 & IO14 & GPIO14 & \\
\hline
9 & IO5 & GPIO5 & SCL0 \\
\hline
10 & IO6 & GPIO6 & SDA0\\
\hline
6, 12 & +3.3V & & \\
\hline
5, 11 & GND & & \\
\hline

\end{tabular}
\\PMOD Connector J4
\end{center} 

\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Pin & Name & Function & Alternate Function \\
\hline
2 & TXD & UART TXD & * \\
\hline
3 & RXD & UART RXD & * \\
\hline
7 & IO15 & GPIO15 &  \\
\hline
8 & IO16 & GPIO16 & \\
\hline
9 & IO17 & GPIO17 & \\
\hline
10 & IO18 & GPIO18 & \\
\hline
1, 4 & NC & & \\
\hline
6, 12 & +3.3V & & \\
\hline
5, 11 & GND & & \\
\hline

\end{tabular}
\\Pmod Connector J5
\end{center}

*: TXD and RXD are connected to the ICCFPGA module only if jumper J7 and J8 are closed. TXD and RXD can be used as GPIO pins (TXD = IO8, RXD = IO7) only if UART is not used.
